The transmission of signals is subject to interference by noise in the transmission channel. Noise refers to fluctuations in the stream of information conveyed in a transmitted signal as received by a receiver, as well as the addition of external factors in the stream of information. Interference by noise impedes the interpretation of information contained within the transmitted signal. Error correction may be utilized to remove the effects of noise from a transmitted signal so that the information contained within the transmitted signal can be obtained. Forward error correction encodes transmitted signals with redundant data to enable a receiver to correct errors in the signal caused by noise without requiring the retransmission of the signal. The noisy-channel coding theorem establishes that a transmission channel, however corrupted by noise, may be utilized to transmit information free of errors up to a maximum rate through the transmission channel by utilizing error correction.
Turbo codes are a class of high-performance error correction codes. Turbo codes enable signal transmission to come very close to the theoretical maximum information transfer rate over a transmission channel which includes noise. Turbo codes utilize likelihood data based on the encoding of a transmitted signal to generate probabilistic hypotheses regarding errors in the signal. Turbo codes enable increases in the rate of information transmitted in a signal without increasing the signal power, or decreases of signal power used to transmit information at the same rate.